Para mi tesis doctoral estoy desarrollando un modelo de evolución de funciones geneticas (por ejemplo, regulamiento de crecimiento celular)
La idea es que, utilizando la estructura evolutiva de los genes (aka Ɣrbol de la vida) podemos inferir funciones que aun no han sido descubiertas
library(aphylo)
set.seed(1344)
tree <- rdrop_annotations(sim_annotated_tree(30, P=2), pcent=.4)
plot(tree, main="Arbol filogenƩtico anotado (simulado)")El modelo consiste en el cƔlculo de la probabilidad de observar un Ɣrbol filogenƩtico con un set de anotaciones en particular.
Utilizo lo que se conoce como el algoritmo de tree peeling (post order)⦠lo importante es que dicho algoritmo permite calcular la probabilidad de una manera rÔpida.
El problema: (1) La solución cerrada no es feasible, (2) El estimador de MĆ”xima verosimilitud āno se porta bienā
La solución: Estimación de parÔmetros utilizando cadenas de monte carlo (MCMC).
El algoritmo de cÔlculo de la función de verosimilitud estÔ escrito con Rcpp (aphylo)
El algoritmo de MCMC utiliza el paquete parallel para estimar multiples cadenas de forma paralela (hago esto para verificar convergencia) (amcmc)
Estudio de simulación: Utilizando la base de datos PANTHER DB (que consiste en cerca de 13.000 arboles), simular el modelo evolutivo en cada uno de ellos, estimar el modelo y posteriormente calcular la precisión de la las predicciones
La Ćŗltima parte fue implementada con el Cluster Computacional de USC, en concreto, utilizando 300 procesadores distribuidos en al rededor de 50 nodos (PCs). (todo implementado con un 3er paquete desarrollado para esto sluRm)
gvegayon
@gvegayon
ggvy.cl
For more, checkout the CRAN Task View on HPC
## R version 3.5.1 (2018-07-02)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 16.04.5 LTS
##
## Matrix products: default
## BLAS: /usr/lib/libblas/libblas.so.3.6.0
## LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] aphylo_0.1.99 ape_5.2
##
## loaded via a namespace (and not attached):
## [1] Rcpp_1.0.0 knitr_1.20 magrittr_1.5
## [4] amcmc_0.0.9000 MASS_7.3-51.1 viridisLite_0.3.0
## [7] lattice_0.20-38 stringr_1.3.1 polygons_0.1.9000
## [10] tools_3.5.1 revealjs_0.9 parallel_3.5.1
## [13] grid_3.5.1 nlme_3.1-137 coda_0.19-2
## [16] htmltools_0.3.6 yaml_2.2.0 rprojroot_1.3-2
## [19] digest_0.6.18 Matrix_1.2-15 codetools_0.2-15
## [22] evaluate_0.12 icon_0.1.0 rmarkdown_1.10
## [25] stringi_1.2.4 compiler_3.5.1 backports_1.1.2